package com.yanqu.road.entity.wingroom.config;

import java.util.LinkedHashMap;
import java.util.List;

/**
 * @author ：zfr
 * @date ：2022/1/27 9:55
 */
public class WingRoomFurnitureConfig {

    private int furnitureId;
    private int quality;
    private int suitType;
    private int placeType;
    private int roomType;
    private boolean isFloor;
    private int xLen;
    private int yLen;
    private List<Integer> skills;
    private int upgradeType;
    private int placeNum;
    private String price;
    private int geomancy;//摆放后可增加风水值
    private int increaseGeomancy;//增加风水值上限


    public int getFurnitureId() {
        return furnitureId;
    }

    public int getQuality() {
        return quality;
    }

    public int getSuitType() {
        return suitType;
    }

    public int getPlaceType() {
        return placeType;
    }

    public int getxLen() {
        return xLen;
    }

    public int getyLen() {
        return yLen;
    }

    public boolean isFloor() {
        return isFloor;
    }

    public int getRoomType() {
        return roomType;
    }

    public List<Integer> getSkills() {
        return skills;
    }

    public int getUpgradeType() {
        return upgradeType;
    }

    public int getPlaceNum() {
        return placeNum;
    }

    public String getPrice() {
        return price;
    }

    public int getGeomancy() {
        return geomancy;
    }

    public int getIncreaseGeomancy() {
        return increaseGeomancy;
    }

    public static final class WingRoomFurnitureConfigBuilder {
        private int furnitureId;
        private int quality;
        private int suitType;
        private int placeType;
        private int roomType;
        private boolean isFloor;
        private int xLen;
        private int yLen;
        private List<Integer> skills;
        private int upgradeType;
        private int placeNum;
        private String price;
        private int geomancy;//摆放后可增加风水值
        private int increaseGeomancy;//增加风水值上限

        private WingRoomFurnitureConfigBuilder() {
        }

        public static WingRoomFurnitureConfigBuilder aWingRoomFurnitureConfig() {
            return new WingRoomFurnitureConfigBuilder();
        }

        public WingRoomFurnitureConfigBuilder withFurnitureId(int furnitureId) {
            this.furnitureId = furnitureId;
            return this;
        }

        public WingRoomFurnitureConfigBuilder withQuality(int quality) {
            this.quality = quality;
            return this;
        }

        public WingRoomFurnitureConfigBuilder withSuitType(int suitType) {
            this.suitType = suitType;
            return this;
        }

        public WingRoomFurnitureConfigBuilder withPlaceType(int placeType) {
            this.placeType = placeType;
            return this;
        }

        public WingRoomFurnitureConfigBuilder withRoomType(int roomType) {
            this.roomType = roomType;
            return this;
        }

        public WingRoomFurnitureConfigBuilder withIsFloor(boolean isFloor) {
            this.isFloor = isFloor;
            return this;
        }

        public WingRoomFurnitureConfigBuilder withXLen(int xLen) {
            this.xLen = xLen;
            return this;
        }

        public WingRoomFurnitureConfigBuilder withYLen(int yLen) {
            this.yLen = yLen;
            return this;
        }

        public WingRoomFurnitureConfigBuilder withSkills(List<Integer> skills) {
            this.skills = skills;
            return this;
        }

        public WingRoomFurnitureConfigBuilder withUpgradeType(int upgradeType) {
            this.upgradeType = upgradeType;
            return this;
        }

        public WingRoomFurnitureConfigBuilder withPlaceNum(int placeNum) {
            this.placeNum = placeNum;
            return this;
        }

        public WingRoomFurnitureConfigBuilder withPrice(String price) {
            this.price = price;
            return this;
        }

        public WingRoomFurnitureConfigBuilder withGeomancy(int geomancy) {
            this.geomancy = geomancy;
            return this;
        }

        public WingRoomFurnitureConfigBuilder withIncreaseGeomancy(int increaseGeomancy) {
            this.increaseGeomancy = increaseGeomancy;
            return this;
        }

        public WingRoomFurnitureConfig build() {
            WingRoomFurnitureConfig wingRoomFurnitureConfig = new WingRoomFurnitureConfig();
            wingRoomFurnitureConfig.skills = this.skills;
            wingRoomFurnitureConfig.roomType = this.roomType;
            wingRoomFurnitureConfig.furnitureId = this.furnitureId;
            wingRoomFurnitureConfig.isFloor = this.isFloor;
            wingRoomFurnitureConfig.xLen = this.xLen;
            wingRoomFurnitureConfig.upgradeType = this.upgradeType;
            wingRoomFurnitureConfig.placeType = this.placeType;
            wingRoomFurnitureConfig.yLen = this.yLen;
            wingRoomFurnitureConfig.placeNum = this.placeNum;
            wingRoomFurnitureConfig.quality = this.quality;
            wingRoomFurnitureConfig.suitType = this.suitType;
            wingRoomFurnitureConfig.price = this.price;
            wingRoomFurnitureConfig.geomancy = this.geomancy;
            wingRoomFurnitureConfig.increaseGeomancy = this.increaseGeomancy;
            return wingRoomFurnitureConfig;
        }
    }
}
